package cn.easier.activity.console.service;

import cn.easier.activity.console.entity.LogCountParams;
import cn.easier.activity.console.entity.SignMessageParams;
import cn.easier.activity.console.vo.Datas;
import cn.easier.activity.web.dto.ActivityRecordDto;
import cn.easier.activity.web.entity.ActivityInfo;
import cn.easier.activity.web.entity.ActivityRecord;
import cn.easier.club.base.dto.ResultInfo;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 数据统计有关
 *
 * @author lixiaopeng
 */
public interface DataStatisticsService {

    /**
     * 获取所有的活动信息
     */
    List<ActivityInfo> getAllActivity();

    /**
     * 多条件查询中奖记录表
     *
     * @param activityId 活动id
     * @param phoneNum   用户手机号
     */
    ResultInfo findAllByConditions(Integer activityId, String phoneNum, int begin, int count);

    ResultInfo findAllByConditionsAndUser(String username, Integer activityId, String phoneNum, String recordNo, Integer prizeType, int begin, int count);

    /**
     * 根据条件导出中奖信息
     *
     * @param activityId 活动id
     * @param phoneNum   用户手机号
     */
    List<ActivityRecordDto> exportByConditions(Integer activityId, String phoneNum, String recordNo, Integer prizeType) throws Exception;

    /**
     * 获取活动下日详情数据
     */
    ResultInfo findDayData(String activityId, int pageNum, int pageSize);

    /**
     * 导出活动下的日详情数据
     */
    List<LogCountParams> exportDayData(String activityId);

    List<ActivityInfo> getAllActivityByUser(String username);

    List<ActivityRecordDto> exportByConditionsAndUser(Integer activityId, String phoneNum, String username, String recordNo, Integer prizeType) throws Exception;

    Page<Datas> findAllDataList(int pageNum, int pageSize, Integer activityId, String username);

    List<SignMessageParams> exportBySignMessage();

    ResultInfo updateEntityStrategy(List<String> recordIdList);
}
